package com.ruoyi.procurement.service;

import java.util.List;
import com.ruoyi.procurement.domain.PsGoods;
import com.ruoyi.procurement.domain.PsOutbound;
import com.ruoyi.procurement.domain.PsProcure;
import com.ruoyi.procurement.domain.PsReportingLosses;

/**
 * 物品库存Service接口
 * 
 * @author ruoyi
 * @date 2023-10-10
 */
public interface IPsGoodsService 
{
    /**
     * 查询物品库存
     * 
     * @param goodsId 物品库存主键
     * @return 物品库存
     */
    public PsGoods selectPsGoodsByGoodsId(String goodsId);

    /**
     * 查询物品库存列表
     * 
     * @param psGoods 物品库存
     * @return 物品库存集合
     */
    public List<PsGoods> selectPsGoodsList(PsGoods psGoods);

    /**
     * 新增物品库存
     * 
     * @param psGoods 物品库存
     * @return 结果
     */
    public int insertPsGoods(PsGoods psGoods);

    /**
     * 修改物品库存
     * 
     * @param psGoods 物品库存
     * @return 结果
     */
    public int updatePsGoods(PsGoods psGoods);

    /**
     * 批量删除物品库存
     * 
     * @param goodsIds 需要删除的物品库存主键集合
     * @return 结果
     */
    public int deletePsGoodsByGoodsIds(String[] goodsIds);

    /**
     * 删除物品库存信息
     * 
     * @param goodsId 物品库存主键
     * @return 结果
     */
    public int deletePsGoodsByGoodsId(String goodsId);

    //出库、采购、报损
    Boolean deduction(String PsGoodsTypeId, String type, PsReportingLosses psReportingLosses, PsProcure psProcure, PsOutbound psOutbound);

    PsGoods selectPsGoodsByGoodsIdAnddelFlag(String psGoodsId, String delFlag);
}
